﻿using Business.Base;
using Business.Base.Model;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Business.ScrewPump.Perf
{
    public class ScrewPumpPerfChartData: BaseChartData
    {
        #region 私有变量
        double maxXPressAxis;
        double minXPressAxis;
        double minYQAxis;
        double maxYQAxis;
        double minYPAxis;
        double maxYPAxis;
        int xUnitCount;
        int yUnitCount;

        double xRatedPresure;
        double yRatedQ;
        double yRatedPower;
        double yRatedEff;
        double measurePresure;
        double measureFlow;
        double measureEff;
        double measurePower;




        double[] axisInterval = new double[4];

        ArrayList drawXPresureList;
        ArrayList drawYFlowList;
        ArrayList drawYPowerList;
        ArrayList drawYEffList;

        List<double[]> drawList = new List<double[]>();
        List<Double[]> inputPoints = new List<Double[]>();


        Double peRate;

        //double[,] flowQRange;
        //double[,] flowPowerRange;
        //double[,] flowEffRange;


        //额定压力下，根据计算结果
        double[] flowRange;
        double[] powerRange;
        double[] effRange;
        Boolean showFlowRange;
        Boolean showPowerRange;
        Boolean showEffRange;
        double yMaxFlowinRatePresureLine;
        double xMaxFlowinRatePresureLine;


        #endregion


        public double MinYPAxis { get => minYPAxis; set => minYPAxis = value; }
        public double MaxYPAxis { get => maxYPAxis; set => maxYPAxis = value; }
        public int XUnitCount { get => xUnitCount; set => xUnitCount = value; }
        public int YUnitCount { get => yUnitCount; set => yUnitCount = value; }
        public double YRatedQ { get => yRatedQ; set => yRatedQ = value; }
        public double XRatedPressure { get => xRatedPresure; set => xRatedPresure = value; }
        public double YRatedPower { get => yRatedPower; set => yRatedPower = value; }
        public double YRatedEff { get => yRatedEff; set => yRatedEff = value; }
        public double[] AxisInterval { get => axisInterval; set => axisInterval = value; }
        public List<double[]> DrawList { get => drawList; set => drawList = value; }
        public List<double[]> InputPoints { get => inputPoints; set => inputPoints = value; }
        public double PeRate { get => peRate; set => peRate = value; }
        

        public double MinYEAxis { get => 0.0f; }
        public double MaxYEAxis { get => 100.0f; }
        public double MaxXPressAxis { get => maxXPressAxis; set => maxXPressAxis = value; }
        public double MinXPressAxis { get => minXPressAxis; set => minXPressAxis = value; }
        public double MinYQAxis { get => minYQAxis; set => minYQAxis = value; }
        public double MaxYQAxis { get => maxYQAxis; set => maxYQAxis = value; }
        public double[] FlowRange { get => flowRange; set => flowRange = value; }
        public double[] PowerRange { get => powerRange; set => powerRange = value; }
        public double[] EffRange { get => effRange; set => effRange = value; }
        public bool ShowFlowRange { get => showFlowRange; set => showFlowRange = value; }
        public bool ShowPowerRange { get => showPowerRange; set => showPowerRange = value; }
        public bool ShowEffRange { get => showEffRange; set => showEffRange = value; }
        public double YMaxFlowinRatePresureLine { get => yMaxFlowinRatePresureLine;  set => yMaxFlowinRatePresureLine = value; }
        public double MeasurePresure { get => measurePresure; set => measurePresure = value; }
        public double MeasureFlow { get => measureFlow; set => measureFlow = value; }
        public double MeasureEff { get => measureEff; set => measureEff = value; }
        public double MeasurePower { get => measurePower; set => measurePower = value; }
        public double XMaxFlowinRatePresureLine { get => xMaxFlowinRatePresureLine; set => xMaxFlowinRatePresureLine = value; }
    }
}
